<?php

//listenme
session_start();
header ( "Content-type: text/html; charset=utf-8" ); 
include 'db.php';
include './libs/Smarty.class.php';

//用户类
//涵盖用户所有行为
class UserAction{
    public $db;
	public $smarty;
	//构造函数
	public function __construct(){
	    $this->db=new DB();
		$this->smarty= new Smarty();
	}
	//默认首页，随机从数据库读取一条歌曲信息 并且播放
	function index(){
	    //获取数据库的记录数
	    $sql="select count(*) from music";
		$res=$this->db->dql($sql);
		$info=$res->fetch_assoc();
		$end=(integer)$info['count(*)'];
		//var_dump($res);
		//随机一个数字 0--记录总数
		$id=rand(1,$end)-1;
		//echo $id;
		$sql="select * from music limit ".$id.",1";
	    $res=$this->db->dql($sql);
		$info=$res->fetch_assoc();
		//var_dump($info);
		$this->smarty->assign('pic',$info['pic']);
		$this->smarty->assign('src',$info['src']);
		$this->smarty->display("listen.html");		
	}

   //检查用户有没有登录
   function isLogin(){
      if(!empty($_SESSION['name'])){
	     header('location:index.html');
	  }else{
	     header('location:login.html');
	  }
   }
   //这是用户登录
   //参数为登录密码
   function login($pass){
	    //请注意这里sql语句字符串的拼接
	    $sql="select pass from user where pass='".$pass."'";
		$res=$this->db->dql($sql);
	    $res=$res->fetch_assoc();
        if(!empty($res)){
		    //header('location:upload.html');
			//将用户名存入session
			$_SESSION['name']=$res['pass'];
            
			//file_put_contents("E:/mylog.log",$_SESSION['name']."\r\n",FILE_APPEND);
			//返回ok字符串，给前端做跳转
			echo "ok";
			
		}else{
		    echo "none";
		}

   }
   
   //歌曲异步切换 
   function change(){
        //file_put_contents("F:/mylog.log","歌曲在这里切换",FILE_APPEND);
	    //获取数据库的记录数
	    $sql="select count(*) from music";
		$res=$this->db->dql($sql);
		$info=$res->fetch_assoc();
		$end=(integer)$info['count(*)'];
		//var_dump($res);
		//随机一个数字 0--记录总数
		$id=rand(1,$end)-1;
		//echo $id;
		$sql="select * from music limit ".$id.",1";
	    $res=$this->db->dql($sql);
		$info=$res->fetch_assoc();
		//file_put_contents("F:/mylog.log",$info['src'],FILE_APPEND);
		
		echo json_encode($info);	
		//echo "ok";
   }

   //用户退出
   function out(){
        //清空session
        unset($_SESSION['name']);
		//删除session文件
		session_destroy();
		//卸载内存中的session变量
		session_unset();
	   //返回首页
	   $this->index();

   }

   //这是用户上传行为
   //参数为:歌曲名字  歌手头像  歌曲源文件
   function upload($name,$file){
	   if(!empty($_SESSION['name'])){
		   //file_put_contents("F:/mylog.log",,FILE_APPEND);
		   //接收name,处理name
		   //一个中文三个字符
		   //去掉空格
		   $filename=trim($name);
		   //对字符串处理
		   //这个功能后面写
		   /*if(strlen($filename)>30){
		      //截取字符串，中文不能出现乱码
			  
		   }*/
		   
		   //对文件重命名，自定义函数
		   $newname=time();
		   $exname1=strrchr($file['name'][0],'.');
		   $exname2=strrchr($file['name'][1],'.');
		   $path='upload/';
		   //上传头像,请注意路径，斜杠不要用错了		   
		   //echo $path.$newname.$exname1;
		   move_uploaded_file($file['tmp_name'][0], $path.$newname.$exname1);
		   //对上传的图像进行缩小处理
		   //直接将宽高改成200*200,不考虑等比例
		   
		   //上传歌曲
		   move_uploaded_file( $file['tmp_name'][1], $path.$newname.$exname2);
		   
		   
		   //写入数据库
           $sql="insert into music(name,src,pic) values('".$filename."',
		         '".$path.$newname.$exname2."','".$path.$newname.$exname1."')";
		    //执行数据库写入
		   //echo $sql;
           $res=$this->db->dql($sql);
		   echo "上传成功";
		   
	   }else{
	       header('location:login.html');
	   }

   }

   //这是用户删除歌曲   这个功能以后要用ajax实现
   function del($id){
       //删除文件
	   $sql="select * from music where id='".$id."'";
	   $res=$this->db->dql($sql);
	   $info=$res->fetch_assoc();
	   //var_dump($info);
	   //先删除服务器  再删除数据库
	   if(unlink($info['src']) && unlink($info['pic'])){
		   //删除数据库记录
		   $sql="delete from music where id = '".$id."'";
		   $res=$this->db->dql($sql);
		   echo "删除成功";	       
	   }else{
	       echo "删除失误";
	   }


   }

   //显示歌曲列表
   function manger(){
         if(empty($_SESSION['name'])){
		     header('login.html');
		 }else{
			 $sql="select * from music";
			 $res=$this->db->dql($sql);
			 $arr=$res->fetch_all();
			 $this->smarty->assign('list',$arr);
			 $this->smarty->display("list.html");
		 }
     
   }
   //用户提交留言
   function putmes(){
       //需求描述
	   //同一个ip一天只能留言一条
	   //根据ip获取提取用户地址信息
	   //根据预留图像  随机生成用户头像
	   //获取客户端的ip,因为在本地测试，使用测试ip
	   //$ip=$_SERVER["REMOTE_ADDR"];

	   //测试ip，上线后，开启上面的$ip
	   $ip="222.79.92.128";
	   $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
	   $content = file_get_contents($url);
	   $obj = json_decode($content);
	   $address=($obj->data->region).'/'.$obj->data->city;
       $today = date("Y/m/d");   
       $sql="insert into message(cont,date,address) values('".$_POST['cont']."',
	   '".$today."','".$address."')";
	   $res=$this->db->dql($sql);
	  //var_dump($res);
	   echo "留言成功";
   }
   
   //示所有留言
   function meslist(){
      //使用异步加载技术
      $sql="select * from message ORDER BY id DESC";
	  $res=$this->db->dql($sql);
	  $info=$res->fetch_all();
	  $this->smarty->assign('info',$info);
	  $this->smarty->display("message.html");	  
   }
   //析构函数
   function __destruct(){
      //暂时不执行任何操作
   }
   
   //测试函数
   function test(){
        //测试array到json的转换
		$sql="select * from music where id=18";
	    $res=$this->db->dql($sql);
		$info=$res->fetch_assoc();
		var_dump($info);
		
		var_dump(json_encode($info));
		
   }



}


?>